﻿/*
 *      CentroVentasCore32  - CVCore32.dll
 *      
 *      Desarrollado por:
 *                      Francisco Acevedo.
 *                      David Avila.
 *                      José Pérez.
 *                      
 *      Todos los derechos reservados.
 */

/*
 *      CLASE: CarroCompras   
 * Notas de versión:
 * 
 * [13-01-2012]
 *      -   Creación de la clase.
 *      -   Implementacion de un carrito de compra en base a una lista generica.
 */
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace CVCore32.Class.Funciones.Compras
{
    public class CarroCompras
    {

        private int _idProveedor;

        public int IdProveedor
        {
            get { return _idProveedor; }
            set { _idProveedor = value; }
        }

        List<ProductoCarro> carrito;

        public bool Add(int IdProducto, int IdPrecio, int cantidad)
        {
            try
            {
                CVCore32.Data.Producto prod = CVCore32.Class.Funciones.Productos.Producto.getProducto(IdProducto);

                CVCore32.Data.Precio prec = new Data.Precio();
                CVCore32.Class.Funciones.Productos.Precio.GetPrecio(prod.ProductoId, CVCore32.Class.Funciones.Productos.MetodoDeValoracionDeInventario.PEPS);
                carrito = new List<ProductoCarro>();
                carrito.Add(new ProductoCarro
                {
                    IdProducto = IdProducto,
                    IdPrecio = IdPrecio,
                    Descripcion = prod.Descripcion,
                    Marca = prod.Marca1.Nombre,
                    Precio = Convert.ToDouble(prec.PrecioVenta),
                    Cantidad = cantidad,
                    Subtotal = Convert.ToDouble(prec.PrecioVenta) * cantidad
                });

                return true;
            }
            catch (Exception)
            {

                return false;
            }
        }

    }

    public class ProductoCarro
    {
        int _IdProducto;
        int _IdPrecio;
        string _codBarras;
        string _descripcion;
        double _subtotal;
        double _precio;
        string _marca;
        int _cantidad;


        public int IdPrecio
        {
            get { return _IdPrecio; }
            set { _IdPrecio = value; }
        }

        public int IdProducto
        {
            get { return _IdProducto; }
            set { _IdProducto = value; }
        }

        public string CodBarras
        {
            get { return _codBarras; }
            set { _codBarras = value; }
        }

        public string Descripcion
        {
            get { return _descripcion; }
            set { _descripcion = value; }
        }

        public string Marca
        {
            get { return _marca; }
            set { _marca = value; }
        }

        public int Cantidad
        {
            get { return _cantidad; }
            set { _cantidad = value; }
        }

        public double Precio
        {
            get { return _precio; }
            set { _precio = value; }
        }

        public double Subtotal
        {
            get { return _subtotal; }
            set { _subtotal = value; }
        }

    }
}
